package com.springboot.frame.comm.database.provider;

/**
 * 代码生成sql提供接口
 *
 * @author madman
 */
public interface SqlProvider {

  /**
   * 获得所有表信息的sql
   *
   * @return 所有表信息
   */
  String tables();

  /**
   * 获得表名的sql
   *
   * @return 表名
   */
  String tableName();

  /**
   * 获得表注释的sql
   *
   * @return 表注释
   */
  String tableComment();

  /**
   * 通过表名获得所有字段信息的sql
   *
   * @param tableName 表名
   * @return 字段信息
   */
  String tableFields(String tableName);

  /**
   * 获得表字段名的sql
   *
   * @return 表字段名
   */
  String fieldName();

  /**
   * 获得表字段类型的sql
   *
   * @return 字段类型
   */
  String fieldType();

  /**
   * 获得表字段注释的sql
   *
   * @return 字段注释
   */
  String fieldComment();

  /**
   * 获得字段是否是主键的sql
   *
   * @return 主键
   */
  String primaryKey();

}
